import os
from PIL import Image


# 这个函数将会把112x112变成224x224
def resize_images_in_folder(folder_path, output_path, size=(224, 224)):
    # 确保目标路径存在
    os.makedirs(output_path, exist_ok=True)

    # 遍历文件夹中的所有文件和子文件夹
    for subdir, dirs, files in os.walk(folder_path):
        for filename in files:
            if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')):
                # 构造完整的文件路径
                original_img_path = os.path.join(subdir, filename)

                # 打开图片
                img = Image.open(original_img_path)

                # 调整图片尺寸
                img_resized = img.resize(size, Image.Resampling.LANCZOS)

                # 构造目标文件夹中的新文件路径
                # 注意：需要将原始文件夹路径替换为输出文件夹路径
                relative_path = os.path.relpath(subdir, folder_path)
                resized_img_path = os.path.join(output_path, relative_path, filename)

                # 确保目标子文件夹存在
                os.makedirs(os.path.dirname(resized_img_path), exist_ok=True)

                # 保存调整后的图片
                img_resized.save(resized_img_path)


# 设置原始图片所在的文件夹路径
original_path = r"./dataset2/testdata"
# 设置调整后图片要保存的目标文件夹路径
resized_path = r"./dataset2/testdata_resized"

# 调用函数处理图片
resize_images_in_folder(original_path, resized_path)
print("图片尺寸调整完成。")
